package Array;

import java.util.ArrayList;
import java.util.List;

/**
 * @author yyq
 * @create 2021-09-16 9:19
 */
public class xisuArray {



    public static void main(String[] args) {
        int[][] arr = {
                {0,3,0},
                {0,5,0},
                {0,0,0}};
        int[][] ints = ToXSArray(arr);
        for(int i=0;i< ints.length;i++){
            for(int j=0;j<ints[1].length;j++){
                System.out.println(ints[i][j]);
            }
        }
        System.out.println("*******");
        int[][] ysArray = ToYsArray(ints);
        for (int i = 0; i < ysArray.length; i++) {
            for (int j=0;j<ysArray[0].length;j++){
                System.out.println(ysArray[i][j]);
            }
        }


    }

    public static int[][] ToYsArray(int array[][]){
        int YsArray[][]=new int[array[0][0]][array[0][1]];
        for (int i=0;i< array[0][2];i++){
            YsArray[array[i+1][0]][array[i+1][1]]=array[i+1][2];
        }
        return YsArray;
    }



    public static int[][] ToXSArray(int array[][]){
        //获取数组的行数和列数
        int row  =  array.length;
        int col  = array[1].length;
        List<dx> list=new ArrayList();

        //获取数组有多少个数，然后创建 【n+1 】【3】数组
        for(int i=0;i<row;i++){
            for(int j=0;j<col;j++){
                if(array[i][j]!=0){
                    list.add(new dx(i,j,array[i][j]));
                }
            }
        }
        System.out.println(list);
//          0      1       2
//      0  总行数  总列数   多少个值
//      1   行       列     值
//      2   行       列     值
        int xisuArray[][]=new int[list.size()+1][3];
        xisuArray[0][0]=row;
        xisuArray[0][1]=col;
        xisuArray[0][2]=list.size();
        for (int i = 0; i < list.size(); i++) {
            xisuArray[i+1][0]=list.get(i).x;
            xisuArray[i+1][1]=list.get(i).y;
            xisuArray[i+1][2]=list.get(i).val;
        }

        return xisuArray;
    }


}

class dx{
    public int x;
    public int y;
    public int val;

    public dx(int x,int y,int val){
        this.x=x;
        this.y=y;
        this.val=val;
    }

    @Override
    public String toString() {
        return "dx{" +
                "x=" + x +
                ", y=" + y +
                ", val=" + val +
                '}';
    }
}
